/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.provider;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

import vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.util.CfcuiAdapterFactory;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class CfcuiItemProviderAdapterFactory extends CfcuiAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/**
	 * This keeps track of the root adapter factory that delegates to this adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComposedAdapterFactory parentAdapterFactory;

	/**
	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/**
	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Collection<Object> supportedTypes = new ArrayList<Object>();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CfcuiItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Form} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FormItemProvider formItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Form}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFormAdapter() {
		if (formItemProvider == null) {
			formItemProvider = new FormItemProvider(this);
		}

		return formItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.UserControl} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UserControlItemProvider userControlItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.UserControl}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUserControlAdapter() {
		if (userControlItemProvider == null) {
			userControlItemProvider = new UserControlItemProvider(this);
		}

		return userControlItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Panel} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PanelItemProvider panelItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Panel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPanelAdapter() {
		if (panelItemProvider == null) {
			panelItemProvider = new PanelItemProvider(this);
		}

		return panelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TabPage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TabPageItemProvider tabPageItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TabPage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTabPageAdapter() {
		if (tabPageItemProvider == null) {
			tabPageItemProvider = new TabPageItemProvider(this);
		}

		return tabPageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TabControl} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TabControlItemProvider tabControlItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TabControl}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTabControlAdapter() {
		if (tabControlItemProvider == null) {
			tabControlItemProvider = new TabControlItemProvider(this);
		}

		return tabControlItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.StatusBar} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StatusBarItemProvider statusBarItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.StatusBar}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStatusBarAdapter() {
		if (statusBarItemProvider == null) {
			statusBarItemProvider = new StatusBarItemProvider(this);
		}

		return statusBarItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ToolBar} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ToolBarItemProvider toolBarItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ToolBar}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createToolBarAdapter() {
		if (toolBarItemProvider == null) {
			toolBarItemProvider = new ToolBarItemProvider(this);
		}

		return toolBarItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.MainMenu} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MainMenuItemProvider mainMenuItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.MainMenu}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMainMenuAdapter() {
		if (mainMenuItemProvider == null) {
			mainMenuItemProvider = new MainMenuItemProvider(this);
		}

		return mainMenuItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ContextMenu} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ContextMenuItemProvider contextMenuItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ContextMenu}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createContextMenuAdapter() {
		if (contextMenuItemProvider == null) {
			contextMenuItemProvider = new ContextMenuItemProvider(this);
		}

		return contextMenuItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DataSet} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataSetItemProvider dataSetItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DataSet}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataSetAdapter() {
		if (dataSetItemProvider == null) {
			dataSetItemProvider = new DataSetItemProvider(this);
		}

		return dataSetItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.BindingSource} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BindingSourceItemProvider bindingSourceItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.BindingSource}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBindingSourceAdapter() {
		if (bindingSourceItemProvider == null) {
			bindingSourceItemProvider = new BindingSourceItemProvider(this);
		}

		return bindingSourceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ImageList} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ImageListItemProvider imageListItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ImageList}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createImageListAdapter() {
		if (imageListItemProvider == null) {
			imageListItemProvider = new ImageListItemProvider(this);
		}

		return imageListItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Button} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ButtonItemProvider buttonItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Button}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createButtonAdapter() {
		if (buttonItemProvider == null) {
			buttonItemProvider = new ButtonItemProvider(this);
		}

		return buttonItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.CheckBox} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CheckBoxItemProvider checkBoxItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.CheckBox}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCheckBoxAdapter() {
		if (checkBoxItemProvider == null) {
			checkBoxItemProvider = new CheckBoxItemProvider(this);
		}

		return checkBoxItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ComboBox} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComboBoxItemProvider comboBoxItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ComboBox}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComboBoxAdapter() {
		if (comboBoxItemProvider == null) {
			comboBoxItemProvider = new ComboBoxItemProvider(this);
		}

		return comboBoxItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.HScrollBar} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected HScrollBarItemProvider hScrollBarItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.HScrollBar}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createHScrollBarAdapter() {
		if (hScrollBarItemProvider == null) {
			hScrollBarItemProvider = new HScrollBarItemProvider(this);
		}

		return hScrollBarItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.VScrollBar} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VScrollBarItemProvider vScrollBarItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.VScrollBar}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVScrollBarAdapter() {
		if (vScrollBarItemProvider == null) {
			vScrollBarItemProvider = new VScrollBarItemProvider(this);
		}

		return vScrollBarItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Splitter} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SplitterItemProvider splitterItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Splitter}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSplitterAdapter() {
		if (splitterItemProvider == null) {
			splitterItemProvider = new SplitterItemProvider(this);
		}

		return splitterItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ProgressBar} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProgressBarItemProvider progressBarItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ProgressBar}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProgressBarAdapter() {
		if (progressBarItemProvider == null) {
			progressBarItemProvider = new ProgressBarItemProvider(this);
		}

		return progressBarItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TrackBar} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TrackBarItemProvider trackBarItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TrackBar}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTrackBarAdapter() {
		if (trackBarItemProvider == null) {
			trackBarItemProvider = new TrackBarItemProvider(this);
		}

		return trackBarItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.LinkLabel} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LinkLabelItemProvider linkLabelItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.LinkLabel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLinkLabelAdapter() {
		if (linkLabelItemProvider == null) {
			linkLabelItemProvider = new LinkLabelItemProvider(this);
		}

		return linkLabelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.RadioButton} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RadioButtonItemProvider radioButtonItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.RadioButton}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRadioButtonAdapter() {
		if (radioButtonItemProvider == null) {
			radioButtonItemProvider = new RadioButtonItemProvider(this);
		}

		return radioButtonItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DateTimePicker} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DateTimePickerItemProvider dateTimePickerItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DateTimePicker}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDateTimePickerAdapter() {
		if (dateTimePickerItemProvider == null) {
			dateTimePickerItemProvider = new DateTimePickerItemProvider(this);
		}

		return dateTimePickerItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.MonthCalendar} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MonthCalendarItemProvider monthCalendarItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.MonthCalendar}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMonthCalendarAdapter() {
		if (monthCalendarItemProvider == null) {
			monthCalendarItemProvider = new MonthCalendarItemProvider(this);
		}

		return monthCalendarItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DataGridView} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataGridViewItemProvider dataGridViewItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DataGridView}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataGridViewAdapter() {
		if (dataGridViewItemProvider == null) {
			dataGridViewItemProvider = new DataGridViewItemProvider(this);
		}

		return dataGridViewItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ListBox} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ListBoxItemProvider listBoxItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ListBox}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createListBoxAdapter() {
		if (listBoxItemProvider == null) {
			listBoxItemProvider = new ListBoxItemProvider(this);
		}

		return listBoxItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ListView} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ListViewItemProvider listViewItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ListView}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createListViewAdapter() {
		if (listViewItemProvider == null) {
			listViewItemProvider = new ListViewItemProvider(this);
		}

		return listViewItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TreeView} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TreeViewItemProvider treeViewItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TreeView}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTreeViewAdapter() {
		if (treeViewItemProvider == null) {
			treeViewItemProvider = new TreeViewItemProvider(this);
		}

		return treeViewItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DocumentList} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DocumentListItemProvider documentListItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DocumentList}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDocumentListAdapter() {
		if (documentListItemProvider == null) {
			documentListItemProvider = new DocumentListItemProvider(this);
		}

		return documentListItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DomainUpDown} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DomainUpDownItemProvider domainUpDownItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.DomainUpDown}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDomainUpDownAdapter() {
		if (domainUpDownItemProvider == null) {
			domainUpDownItemProvider = new DomainUpDownItemProvider(this);
		}

		return domainUpDownItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Label} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LabelItemProvider labelItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.Label}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLabelAdapter() {
		if (labelItemProvider == null) {
			labelItemProvider = new LabelItemProvider(this);
		}

		return labelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.PictureBox} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PictureBoxItemProvider pictureBoxItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.PictureBox}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPictureBoxAdapter() {
		if (pictureBoxItemProvider == null) {
			pictureBoxItemProvider = new PictureBoxItemProvider(this);
		}

		return pictureBoxItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TextBox} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TextBoxItemProvider textBoxItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.TextBox}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTextBoxAdapter() {
		if (textBoxItemProvider == null) {
			textBoxItemProvider = new TextBoxItemProvider(this);
		}

		return textBoxItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.NumericUpDown} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NumericUpDownItemProvider numericUpDownItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.NumericUpDown}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNumericUpDownAdapter() {
		if (numericUpDownItemProvider == null) {
			numericUpDownItemProvider = new NumericUpDownItemProvider(this);
		}

		return numericUpDownItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.MenuItem} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MenuItemItemProvider menuItemItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.MenuItem}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMenuItemAdapter() {
		if (menuItemItemProvider == null) {
			menuItemItemProvider = new MenuItemItemProvider(this);
		}

		return menuItemItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ToolBarButton} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ToolBarButtonItemProvider toolBarButtonItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.ToolBarButton}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createToolBarButtonAdapter() {
		if (toolBarButtonItemProvider == null) {
			toolBarButtonItemProvider = new ToolBarButtonItemProvider(this);
		}

		return toolBarButtonItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.PresentationSystem} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PresentationSystemItemProvider presentationSystemItemProvider;

	/**
	 * This creates an adapter for a {@link vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.PresentationSystem}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPresentationSystemAdapter() {
		if (presentationSystemItemProvider == null) {
			presentationSystemItemProvider = new PresentationSystemItemProvider(this);
		}

		return presentationSystemItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/**
	 * This sets the composed adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/**
	 * This implementation substitutes the factory itself as the key for the adapter.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/**
	 * This adds a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/**
	 * This removes a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/**
	 * This disposes all of the item providers created by this factory. 
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void dispose() {
		if (formItemProvider != null) formItemProvider.dispose();
		if (userControlItemProvider != null) userControlItemProvider.dispose();
		if (panelItemProvider != null) panelItemProvider.dispose();
		if (tabPageItemProvider != null) tabPageItemProvider.dispose();
		if (tabControlItemProvider != null) tabControlItemProvider.dispose();
		if (statusBarItemProvider != null) statusBarItemProvider.dispose();
		if (toolBarItemProvider != null) toolBarItemProvider.dispose();
		if (mainMenuItemProvider != null) mainMenuItemProvider.dispose();
		if (contextMenuItemProvider != null) contextMenuItemProvider.dispose();
		if (dataSetItemProvider != null) dataSetItemProvider.dispose();
		if (bindingSourceItemProvider != null) bindingSourceItemProvider.dispose();
		if (imageListItemProvider != null) imageListItemProvider.dispose();
		if (buttonItemProvider != null) buttonItemProvider.dispose();
		if (checkBoxItemProvider != null) checkBoxItemProvider.dispose();
		if (comboBoxItemProvider != null) comboBoxItemProvider.dispose();
		if (hScrollBarItemProvider != null) hScrollBarItemProvider.dispose();
		if (vScrollBarItemProvider != null) vScrollBarItemProvider.dispose();
		if (splitterItemProvider != null) splitterItemProvider.dispose();
		if (progressBarItemProvider != null) progressBarItemProvider.dispose();
		if (trackBarItemProvider != null) trackBarItemProvider.dispose();
		if (linkLabelItemProvider != null) linkLabelItemProvider.dispose();
		if (radioButtonItemProvider != null) radioButtonItemProvider.dispose();
		if (dateTimePickerItemProvider != null) dateTimePickerItemProvider.dispose();
		if (monthCalendarItemProvider != null) monthCalendarItemProvider.dispose();
		if (dataGridViewItemProvider != null) dataGridViewItemProvider.dispose();
		if (listBoxItemProvider != null) listBoxItemProvider.dispose();
		if (listViewItemProvider != null) listViewItemProvider.dispose();
		if (treeViewItemProvider != null) treeViewItemProvider.dispose();
		if (documentListItemProvider != null) documentListItemProvider.dispose();
		if (domainUpDownItemProvider != null) domainUpDownItemProvider.dispose();
		if (labelItemProvider != null) labelItemProvider.dispose();
		if (pictureBoxItemProvider != null) pictureBoxItemProvider.dispose();
		if (textBoxItemProvider != null) textBoxItemProvider.dispose();
		if (numericUpDownItemProvider != null) numericUpDownItemProvider.dispose();
		if (menuItemItemProvider != null) menuItemItemProvider.dispose();
		if (toolBarButtonItemProvider != null) toolBarButtonItemProvider.dispose();
		if (presentationSystemItemProvider != null) presentationSystemItemProvider.dispose();
	}

}
